package pickbook.model;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

//회원 Service implements 후 정의
@Service
public class MemberServiceImpl implements MemberService{
	
	@Resource(name="memberDAOImpl")
	private MemberDAO memberDAO;
	
	/**
	 * method : findById
	 * comment : 매개변수 회원 아이디를 통해 회원 정보를 반환하는 메서드
	 * @param id
	 * @return
	 * 
	 * @author 김병각, 제형규
	 * @date 2014-07-08
	 */
	@Override
	public MemberVO findById(String id) {
		return memberDAO.findById(id);
	}
	
	/**
	 * method : idCheck
	 * comment : 회원가입 시 아이디 중복 체크 메서드
	 * @param id
	 * @return
	 * 
	 * @author 김병각
	 * @date 2014-07-02
	 */
	@Override
	public boolean idCheck(String id) {
		
		int cnt=memberDAO.idCheck(id);
		
		if(cnt>0) return false;
		else return true;
		
	}
	
	/**
	 * method : register
	 * comment : 입력된 회원 정보를 회원 DB에 저장하여 가입하는 메서드
	 * @param mvo
	 * 
	 * @author 김병각
	 * @date 2014-07-02
	 */
	@Override
	public void register(MemberVO mvo) {
		memberDAO.register(mvo);
	}
	
	/**
	 * method : update
	 * comment : 입력된 회원 정보로 회원 DB 내용 변경하는 메서드
	 * @param mvo
	 * 
	 * @author 김병각
	 * @date 2014-07-03
	 */
	@Override
	public void update(MemberVO mvo) {
		memberDAO.update(mvo);
	}
	
	/**
	 * method : withdraw
	 * comment : 회원 DB에서 id에 해당하는 회원 정보를 삭제하여 탈퇴하는 메서드
	 * 
	 * @param id
	 * 
	 * @author 김병각
	 * @date 2014-07-02
	 */
	@Override
	public void withdraw(String id) {
		memberDAO.withdraw(id);
	}
	
	/**
	 * method : loginMember
	 * comment : 회원 아이디와 비밀번호를 통해 로그인하는 메서드
	 * 
	 * @param mvo
	 * @return
	 * 
	 * @author 김병각
	 * @date 2014-07-02
	 */
	@Override
	public MemberVO loginMember(MemberVO mvo) {
		return memberDAO.loginMember(mvo);
	}
	
	/**
	 * method : sendMsg
	 * comment : 픽하기를 통해 판매/구매자에게 메시지 전송하는 메서드
	 * 
	 * @param msgvo
	 * 
	 * @author 김병각,제형규,이형철
	 * @date 2014-07-09
	 */
	@Override
	public void sendMsg(MsgVO msgvo) {
		memberDAO.sendMsg(msgvo);
	}

	/**
	 * method : getPickMsgListById
	 * comment : pick 메시지 리스트를 반환하는 메서드
	 * @param id
	 * @return
	 * 
	 * @author 김병각,제형규,이형철
	 * @date 2014-07-09
	 */
	public ListVO getPickMsgListById(String id,String pageNo){	
		
		if(pageNo==null||pageNo==""){
			pageNo="1";
		}
		
       List<MsgVO> list=memberDAO.getPickMsgListById(id, pageNo);//회원아이디를 통한 메시지 목록
       
       int total = memberDAO.getTotalPickMsgList(id);//목록 총 갯수
       PagingBean paging=new PagingBean(total,Integer.parseInt(pageNo));
       
       return new ListVO(list, paging);
       
	}
	/**
	 * 
	 */
	@Override
	public void deletePickMsg(int no) {
		memberDAO.deletePickMsg(no);
	}
	/**
	 * method : getTotalPickMsgList
	 * comment : pick  메시지 리스트의 총 갯수를 반환하는 메서드
	 * @param id
	 * @return
	 * 
	 * @author 김병각,제형규,이형철
	 * @date 2014-07-09
	 */
	@Override
	public int getTotalPickMsgList(String id) {
		return memberDAO.getTotalPickMsgList(id);
	}
	/**
	 * 
	 * @param id
	 * @param msgTotal
	 */
	@Override
	public void updateMsgTotal(String id, int msgTotal) {
		memberDAO.updateMsgTotal(id,msgTotal);
	}
	
	/**
	 * method : deleteAllMsg
	 * comment : 회원아이디에 해당하는 모든 Pick 메시지 삭제하는 메서드
	 * 
	 * @param id
	 * 
	 * @author 김병각,제형규, 이형철
	 * @date 2014-07-11
	 */
	@Override
	public void deleteAllPickMsg(String id){
		memberDAO.deleteAllPickMsg(id);
	}
}
